<template>
  <div>
    <div class="user-profile">
      <div v-if="info!=null" class="info">
        <van-image round :src="info.photo" />
        <h3 class="name">
          {{info.name}}
          <br />
          <van-tag size="mini">申请认证</van-tag>
        </h3>
      </div>
      <van-row>
        <van-col span="8">
          <p>0</p>
          <p>动态</p>
        </van-col>
        <van-col span="8">
          <p>0</p>
          <p>关注</p>
        </van-col>
        <van-col span="8">
          <p>0</p>
          <p>粉丝</p>
        </van-col>
      </van-row>
    </div>
    <van-row class="user-links">
      <van-col span="8">
        <van-icon name="newspaper-o" color="#7af" />我的作品
      </van-col>
      <van-col span="8">
        <van-icon name="star-o" color="#f00" />我的收藏
      </van-col>
      <van-col span="8">
        <van-icon name="tosend" color="#fa0" />阅读历史
      </van-col>
    </van-row>
    <van-cell-group class="user-group">
      <van-cell icon="edit" title="编辑资料" to="/user/profile" is-link />
      <van-cell icon="chat-o" title="小智同学" to="/user/chat" is-link />
      <van-cell icon="setting-o" title="系统设置" is-link />
      <!-- 绑定退出功能按钮 -->
      <van-cell @click="Exit" icon="warning-o" title="退出登录" is-link />
    </van-cell-group>
  </div>
</template>
<script>
// 传入获取用户个人信息的api接口
import { getUserInfo } from '../../api/my'
export default {
  name: 'My',
  data () {
    return {
      // 储存服务器返回的个人信息 空对象储存
      info: null
    }
  },
  methods: {
    // 获取用户的个人信息
    async getUserInfo () {
      try {
        // 上传服务器 获取用户的个人信息 无需传参 服务器根据token值来获取其用户信息
        const ret = await getUserInfo()
        // 在页面储存个人信息
        this.info = ret.data
      } catch (error) {
        // 如果获取失败 提示用户(Vant插件提供)
        this.$toast('添加失败')
      }
    },
    // ~ 设置点击退出设置(Vant Dialog弹出框 提供插件)
    Exit () {
      // ~ $dialog是导入了全局Vant组件的Vue实例化对象(确认内容的弹窗)
      this.$dialog.confirm({
        title: '退出', // 标题内容的设置
        message: '真的要退出吗' // 弹窗内容的设置
      })
        // ~ 如果确认退出 删除token 并且跳转到登录页面(确定退出)
        .then(() => { // 确认退出进行内容
          // ~ 确认退出后 删除token值
          sessionStorage.removeItem('mytoken')
          // ~ 确认退出后 转到登录页面
          this.$router.push('/Login')
        })
        // ~ 不退出 不错操作(取消退出)
        .catch(() => { // 取消退出进行内容
          // on cancel
        })
    }
  },
  created () {
    // 页面加载时候加载用户个人数据
    this.getUserInfo()
  }

}
</script>
<style lang="less" scoped>
.user {
  &-profile {
    width: 100%;
    height: 300px;
    display: block;
    background: #3296fa;
    color: #fff;
    .info {
      display: flex;
      padding: 20px;
      align-items: center;
      .van-image {
        width: 128px;
        height: 128px;
      }
      .name {
        font-size: 32px;
        font-weight: normal;
        margin-left: 20px;
      }
      .van-tag {
        background: #fff;
        color: #3296fa;
      }
    }
    p {
      margin: 0;
      text-align: center;
    }
  }
  &-group {
    margin-bottom: 30px;
  }
  &-links {
    padding: 30px 0;
    font-size: 12px;
    text-align: center;
    background-color: #fff;
    .van-icon {
      display: block;
      font-size: 48px;
      padding-bottom: 10px;
    }
  }
}
</style>
